/**
 * This file is released under the GNU General Public License.
 * Refer to the COPYING file distributed with this package.
 *
 * Copyright (c) 2008-2009 WURFL-Pro srl
 */
package net.sourceforge.wurfl.core;

import javax.servlet.http.HttpServletRequest;

import net.sourceforge.wurfl.core.request.WURFLRequest;

/**
 * This is the WURFL interface used to do commons users operations as getting
 * Device instance from HTTP request or user-agent string.
 * 
 * @author WURFL-PRO SRL, Rome, Italy
 * @version $Id: WURFLManager.java 1045 2009-03-09 15:52:53Z filippo.deluca $
 */
public interface WURFLManager {

	/**
	 * Return a Device instance from HttpServletRequest instance.
	 * 
	 * @param request
	 *            The HttpServletRequest to match.
	 */
	public Device getDeviceForRequest(HttpServletRequest request);

	/**
	 * 
	 * Return a Device instance from WURFLRequest instance.
	 * 
	 * @param request
	 *            The WURFLRequest to match.
	 */
	public Device getDeviceForRequest(WURFLRequest request);

	/**
	 * 
	 * Return a Device instance from user-agent String.
	 * 
	 * @param userAgent
	 *            The user-agent String to match.
	 */
	public Device getDeviceForRequest(String userAgent);

}